package com.itelite.service;

import com.itelite.domain.dto.UploadUser;
import com.itelite.domain.dto.UserVo;
import com.itelite.domain.pojo.User;

import java.util.List;
import java.util.Map;

/**
 * @author 沈洋 邮箱:1845973183@qq.com
 * @create 2021/8/6-8:55
 **/
public interface UserService {
    int updatePassword(Integer userId,String newPassword);

    /**
     * 批量创建用户
     * @param list 用户列表
     * @return 创建成功条数
     */
    int batchCreateUser(List<UploadUser> list);

    /**
     * 根据查询信息查询用户名和
     * @param keyword 关键字
     * @return 返回用户列表
     */
    List<Map<String, String>> queryGroupMemberByKeyword(String keyword);

    /**
     * 发送邮件
     * @param email 邮箱
     * @return 是否发送成功
     */
    boolean applyRestPassword(String email);

    /**
     * 根据邮箱查找用户
     * @param email 邮箱
     * @return 用户
     */
    List<User> queryUserByEmail(String email);

    String queryUserPassword(Integer userId);

    /**
     * 删除用户（如果用户是小组组长，则将组长关系删除）
     * @param userId 用户编号
     */
    boolean deleteUser(Integer userId);

    /**
     * 修改用户信息
     * @param user 用户信息
     * @return 是否修改成功
     */
    boolean updateUser(UserVo user);

    /**
     * 添加用户
     * @param user 用户
     * @return 是否添加成功
     */
    boolean addUser(UploadUser user);

    /**
     * 验证邮箱是否存在
     * @param email 邮箱
     * @return 是否存在
     */
    boolean validateEmail(String email);

    UserVo queryUserVo(Integer userId);

    /**
     * 重置邮箱
     * @param userId 用户id
     * @param email 邮箱
     */
    void updateUserEmail(Integer userId, String email);
}
